C++中int、long和double的取值范围和最大值,以及32位和64位的差异解读 | 您所在的位置:网站首页 › long int 的取值范围 › C++中int、long和double的取值范围和最大值,以及32位和64位的差异解读 |
前言
一般对于C/C++下int等基本数字类型,主要关注三个维度,长度、取值范围和最大值的宏定义。下面分三个维度说明下。 有三个影响因素: 语言规则限制:比如int是变长,long是定长,double还有精度问题等等;操作系统:某几个类型,Windows和Linux在32位和64位操作系统上的取值是不一致; 32位和64位系统在Windows下基本数据类型的大小都是一样的。只有指针的大小不一样!32位指针大小为4byte,而64位的指针大小为8byte。而Linux下64位操作系统是long型是64位的。详情请看:C++那些细节--32位64位数据类型的区别和windows和Linux的数据类型对比(有微软的解释)编译器:编译器才是区分32位和64位的关键因素,因为64位操作系统也可以运行32位程序;但64位程序只能在64位操作系统上运行。目录 1.长度 2.取值范围 3.最大值的宏定义 4.参考文档: 1.长度 图表:C/C++基础数字类型的取值范围 类型取值范围位数unsigned int0~429496729510位int2147483648~214748364710位unsigned long0~429496729510位long2147483648~214748364710位long long-9223372036854775808~922337203685477580719位unsigned long long0~184467440737095516119位__int64-9223372036854775808~922337203685477580719位unsigned __int640~1844674407370955161520位关于占用字节数,详情在这里:32位与64位下各类型长度对比,已讲的很好,我不再赘述。
注:I表示int类型,L表示long类型,P表示pointer指针类型,32表示32位系统/编译器,64表示64位系统/编译器。 2.取值范围首选,说一下C/C++下int等基本数字类型的长度和取值范围。 3.最大值的宏定义
C++中, 经常会使用, 某些类型的最大值, 如int的最大整数(INT_MAX), C的函数中, 包含了这些宏定义. 头文件: #include 维基百科上的相关说明: 32位与64位下各类型长度对比 C++ - 内置类型的最大值宏定义 https://www.runoob.com/cprogramming/c-standard-library-limits-h.html https://zh.wikipedia.org/wiki/Limits.h |
CopyRight 2018-2019 实验室设备网 版权所有 |